1738863f7d7dacacc11779bad4b401eab1c030ec,object/src/main/java/com/orientechnologies/orient/object/enhancement/OObjectProxyMethodHandler.java,OObjectProxyMethodHandler,setValue,#Object#String#Object#,528
Before Change
valueToSet = manageCollectionSave(f, (Collection<?>) valueToSet, customSerialization);
} else if (valueToSet instanceof Map<?, ?>) {
boolean customSerialization = false;
Field f = getField(fieldName, self.getClass());
if (OObjectEntitySerializer.isSerializedType(f)) {
customSerialization = true;
}
After Change
((ODocument) valueToSet).addOwner(doc);
doc.field(fieldName, valueToSet);
} else if (((valueToSet instanceof Collection<?> || valueToSet instanceof Map<?, ?>)) || valueToSet.getClass().isArray()) {
Class<?> genericMultiValueType = OReflectionHelper.getGenericMultivalueType(OObjectEntitySerializer.getField(fieldName,
self.getClass()));
if (genericMultiValueType != null && !OReflectionHelper.isJavaType(genericMultiValueType)) {
if (!(valueToSet instanceof OLazyObjectMultivalueElement)) {
if (valueToSet instanceof Collection<?>) {
boolean customSerialization = false;
Field f = OObjectEntitySerializer.getField(fieldName, self.getClass());
if (OObjectEntitySerializer.isSerializedType(f)) {
customSerialization = true;
}
valueToSet = manageCollectionSave(f, (Collection<?>) valueToSet, customSerialization);
} else if (valueToSet instanceof Map<?, ?>) {
boolean customSerialization = false;
Field f = OObjectEntitySerializer.getField(fieldName, self.getClass());
if (OObjectEntitySerializer.isSerializedType(f)) {
customSerialization = true;
}
valueToSet = manageMapSave(f, (Map<?, ?>) valueToSet, customSerialization);
} else if (valueToSet.getClass().isArray()) {
valueToSet = manageArraySave(fieldName, (Object[]) valueToSet);
}
}
} else {
if (OObjectEntitySerializer.isToSerialize(valueToSet.getClass())) {
doc.field(fieldName, OObjectEntitySerializer.serializeFieldValue(
OObjectEntitySerializer.getField(fieldName, self.getClass()).getType(), valueToSet));
} else {
if (valueToSet.getClass().isArray()) {
OClass schemaClass = doc.getSchemaClass();
OProperty schemaProperty = null;
if (schemaClass != null)
schemaProperty = schemaClass.getProperty(fieldName);
doc.field(fieldName, OObjectEntitySerializer.typeToStream(valueToSet,
schemaProperty != null ? schemaProperty.getType() : null, getDatabase(), doc));
} else
doc.field(fieldName, valueToSet, OObjectEntitySerializer.getTypeByClass(self.getClass(), fieldName));
}
}
} else if (valueToSet.getClass().isEnum()) {
doc.field(fieldName, ((Enum) valueToSet).name());
} else {
if (OObjectEntitySerializer.isToSerialize(valueToSet.getClass())) {
doc.field(fieldName, OObjectEntitySerializer.serializeFieldValue(
OObjectEntitySerializer.getField(fieldName, self.getClass()).getType(), valueToSet));
} else if (getDatabase().getEntityManager().getEntityClass(valueToSet.getClass().getSimpleName()) != null
&& !valueToSet.getClass().isEnum()) {
valueToSet = OObjectEntitySerializer.serializeObject(valueToSet, getDatabase());